//
//  策略枚举.swift
//  StrategyPattern
//
//  Created by mac on 2017/11/10.
//  Copyright © 2017年 RRC. All rights reserved.
//

import Foundation

//策略枚举
public enum Calculator{
    //加法运算
    case ADD
    //减法运算
    case SUB
    
    func exec(a:Int, b:Int) -> Int{
        switch self {
        case .ADD:
            return a+b
        
        case .SUB:
            return a-b
        
        }
    }
}

public class EnumClient{
    public static func main(args:[String]){
        print("运行结果：a+b=\(Calculator.ADD.exec(a: 10, b: 20))")
    }
}

/**
 注意：策略枚举是一个非常优秀和方便的模式，但是它受枚举类型的限制，每个枚举项都是public、final、static的，扩展性受到了一定的约束，因此在系统开发中，策略枚举一般担当不经常发生变化的角色。
 */

